import * as THREE from 'three'
export default class Base {
    constructor() {
        // 创建场景
        this.scene = new THREE.Scene();
        // 创建透视相机
        this.camera = new THREE.PerspectiveCamera(
            75,
            window.innerWidth/window.innerHeight,
            0.1,
            1000
        )
        // 创建渲染器，{antialias: true}:用来设置抗锯齿，使边缘更加平滑。
        this.renderer = new THREE.WebGLRenderer({antialias: true})
        // 设置渲染器尺寸，设置为屏幕的宽高
        this.renderer.setSize(window.innerWidth, window.innerHeight);
        // 调整渲染器的像素比为设备的像素比，使物体更加清晰
        this.renderer.setPixelRatio(window.devicePixelRatio); 
        // 将渲染器添加到场景中
        document.body.appendChild(this.renderer.domElement); 
    }

    update() {
        this.renderer.render(this.scene, this.camera);
    }

    // 自适应 
    resize() {
        // 调整相机的宽高比
        this.camera.aspect = window.innerWidth/window.innerHeight
        // 更新投影矩阵
        this.camera.updateProjectionMatrix()
        // 更新渲染器尺寸
        this.renderer.setSize(window.innerWidth, window.innerHeight) 
    }

    // 添加环境光
    addAmbientLight(intensity=1, color=0xffffff)  {
        const light = new THREE.AmbientLight(color, intensity); // 柔和的白光
        this.scene.add( light );
    }
}